//Create self thread Radar(); in your onplayerspawned(); and stick this anywhere else

Radar() 
{ 
        pos=(-1225,200,-50); 
        for(i=0;i<360;i+=0.3) 
                thread fade(pos,pos+(sin(i)*100,cos(i)*100,0),(0,0,0)); 
        range=2000; 
        for(i=0;;i+=.25) 
        { 
                thread fade(pos,pos+(sin(i)*100,cos(i)*100,0),(0,1,0),1.5); 
                for(x=0;x<level.players.size;x++) 
                        if(distance2d(level.players[x].origin,pos+(sin(i)*100,cos(i)*100,0))<distance2d(level.players[x].origin,pos+(sin(i+0.25)*100,cos(i+0.25)*100,0)) && distance2d(level.players[x].origin,pos+(sin(i)*100,cos(i)*100,0))<distance2d(level.players[x].origin,pos+(sin(i-0.25)*100,cos(i-0.25)*100,0))&&distance2d(level.players[x].origin,pos)<range){ 
                                thread playSoundinspace("mpl_turret_alert",pos); 
                                if(level.players[x].team=="axis")c=(1,0,0);else c=(0,0,1); 
                                        for(z=0;z<360;z+=5) 
                                                thread fade(pos+(sin(i)*distance2d(level.players[x].origin,pos)/(range/100),cos(i)*distance2d(level.players[x].origin,pos)/(range/100),0),pos+((sin(i)*distance2d(level.players[x].origin,pos)/(range/100))+sin(z)*5,(cos(i)*distance2d(level.players[x].origin,pos)/(range/100))+cos(z)*5,10),c,4);} 
                if(i/2==int(i/2)) 
                        wait .05; 
        } 
} 
 
fade(pos,end,col,time) 
{ 
        if(!isdefined(time)) 
                for(;;){ 
                        line(pos,end,col,1,1);wait .05;} 
        for(i=1;i<time*20;i++) 
        { 
                line(pos,end,col/(i/(time*4)),time,1,1); 
                wait .05; 
        } 
}

//Creates a 3D radar on the map which displays player positions